package com.day01.test.main;
/*
基本数据类型运算规则：

前提 ：这里讨论的只是7种基本数据类型变量间的运算，不包含boolean类型
1.自动类型提升：
 结论：当容量小的数据类型的变量与容量大的数据类型的变量做运算时，结构提升为容量的数据类型
 byte 、char、 short --> int --> long --> float --> double

特别的：当byte、char、short三种类型的变量做运算时，结果为int型

2.强制类型转换：详情见variabletest1.java
   是自动提升运算的逆运算

说明：此时的容量大小指的是数的范围的大和小。比如：float的容量大于long的容量
 */
class VaribalrTest {
    public static void main(String[] args) {
        byte b1 = 2;
        int i1 = 129;
        //编译不通过
        //byte b2 = b1 + i1;
        int i2 = b1 + i1;
        long l1 = b1 + i1;
        System.out.println(i2);

        //float存储范围比long大
        float f = b1 + i1;
        System.out.println(f);

        short s1 = 123;
        double d1 = s1;
        System.out.println(d1);//123.0

        //*****************特别地***********************
        char c1 = 'a';//97
        int i3 = 10;
        int i4 = c1 + i3;
        System.out.println(i4);

        short s2 = 10;
        //char c2 = c1 + s2;(编译不通过)

        byte b2 = 10;
        //char c3 = c1 + b2;//编译不通过

        //short s3 = b2 + s2;//编译不通过

        //short s4 = b1 + b2;//编译不通过
        //*************************************************

    }
}
